<?php

/**
 * Muestra reportes de las multas
 * @package simertweb 
 * @subpackage controllers  
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com> 
 * @version 1.0 
 */
class Lista_multas extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->library('pagination');
        $this->load->model('mpersona');
        $this->load->model('mempleado');
        $this->load->model('mpersonal_operativo');
        $this->load->model('mzona');
        $this->load->model('mrol');
        $this->load->model('manular_multas');
        $this->load->model('mmultas');
        $this->load->model('acceso');
        $this->load->model('reportes');
    }

    /**
     * Genera un reporte diario de todas las multas
     */
    function index() {
        if ($this->acceso->sesion() == 1) {
            if (isset($_POST['multas'])) {
                if ($_POST['multas'] == 'TODAS LAS MULTAS') {
                    $dataf['fecha'] = array($_POST['fecInicio'], $_POST['fecFin']);
                    $data['listamultas'] = $this->manular_multas->listar_todas_multas($_POST['fecInicio'], $_POST['fecFin']);
                    $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

                    $this->load->view('includes/menu_izquierdo', $datazonas);
                    $this->load->view('includes/cabecera', $dataf);
                    $this->load->view('lista_multas', $data);
                    $this->load->view('includes/footer');
                } else {
                    if ($_POST['multas'] == 'MULTAS ANULADAS') {
                        $this->listar_anuladas($_POST['fecInicio'], $_POST['fecFin']);
                    } else {
                        if ($_POST['multas'] == 'MULTAS PAGADAS') {
                            $this->listar_pagadas($_POST['fecInicio'], $_POST['fecFin']);
                        } else {
                            if ($_POST['multas'] == 'MULTAS NO PAGADAS') {
                                $this->listar_nopagadas($_POST['fecInicio'], $_POST['fecFin']);
                            } else {
                                if (substr_count($_POST['multas'], 'ZONA')) {
                                    $this->listar_por_zona($_POST['fecInicio'], $_POST['fecFin']);
                                } else {
                                    if (substr_count($_POST['multas'], 'CONTROLADOR')) {
                                        $this->listar_por_controlador($_POST['fecInicio'], $_POST['fecFin']);
                                    } else {
                                        $this->listar_por_tipomulta($_POST['fecInicio'], $_POST['fecFin']);
                                    }
                                }
                            }
                        }
                    }
                }
            } else {
//                var_dump(substr_count('ZONA DELTA','ZONA'));
                date_default_timezone_set('America/Guayaquil');
                $hoy = date('Y-m-d');
                $dataf['fecha'] = array($hoy, $hoy);
                $data['listamultas'] = $this->manular_multas->listar_todas_multas($hoy, $hoy);
                $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

//                $datacontrolador['poperativo'] = $this->mpersonal_operativo->listar_personal_nombres();
                $this->load->view('includes/menu_izquierdo', $datazonas);
                $this->load->view('includes/cabecera', $dataf);
                $this->load->view('lista_multas', $data);
                $this->load->view('includes/footer');
            }
        } else {
            $this->load->view('autenticacion');
        }
    }

    /**
     * Muestra un reporte de multas anuladas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_anuladas($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
//            $datax['var'] = 'anuladas';
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_multas_anuladas($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $dataf);
            $this->load->view('includes/cabecera', $datazonas);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Muestra un reporte de las multas no pagadas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_nopagadas($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_multas_tipomultas($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $datazonas);
            $this->load->view('includes/cabecera', $dataf);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Muestra un reporte de las multas pagadas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_pagadas($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_multas_pagadas($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $datazonas);
            $this->load->view('includes/cabecera', $dataf);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Muestra un reporte de las multas pagadas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_por_zona($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_por_zonas($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $datazonas);
            $this->load->view('includes/cabecera', $dataf);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Muestra un reporte de las multas pagadas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_por_controlador($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_por_controlador($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $datazonas);
            $this->load->view('includes/cabecera', $dataf);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Muestra un reporte de las multas pagadas
     * @param type $fecInicio es la fecha de inicio del reporte
     * @param type $fecFin es la fecha de finalización del reporte
     */
    function listar_por_tipomulta($fecInicio, $fecFin) {
        if ($this->acceso->sesion() == 1) {
            $dataf['fecha'] = array($fecInicio, $fecFin);
            $data['listamultas'] = $this->manular_multas->listar_por_tipomulta($fecInicio, $fecFin);
            $datazonas['zonas'] = array_merge(array_merge($this->mzona->listarZonasUso(), $this->mpersonal_operativo->listar_personal_nombres()), $this->manular_multas->obtener_tipo_multas());

            $this->load->view('includes/menu_izquierdo', $datazonas);
            $this->load->view('includes/cabecera', $dataf);
            $this->load->view('lista_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Permite generar un documento .pdf de todas las multas
     */
    function generar_pdf_todas() {
        if ($this->acceso->sesion() == 1) {
            $cabecera = array(
                'FECHA',
                'CÓDIGO',
                'CONTROLADOR',
                'USUARIO',
                'PLACA',
                'RAZÓN',
                'MONTO',
                'ANULADA',
                'PAGADA',
            );
            $query = $this->manular_multas->listar_todas_multas($_POST['fechai'], $_POST['fechaf']);
            $titulo = '<h1><B>LISTA DE TODAS LAS MULTAS</B></h1><br>';
            $fecha = $_POST['fechai'] . " hasta " . $_POST['fechaf'];
            $contenido = array();
            for ($i = 0; $i < count($query); $i++) {
                $data = array(
                    $query[$i]['fecha'],
                    $query[$i]['codigo'],
                    $query[$i]['controlador'],
                    $query[$i]['usuario'],
                    $query[$i]['placa'],
                    $query[$i]['razon'],
                    $query[$i]['monto'],
                    $query[$i]['anulado'],
                    $query[$i]['pagado'],
                );
                array_push($contenido, $data);
                $this->reportes->pdf($cabecera, $contenido, $titulo, 'FECHA DE REPORTE: ' . $fecha . '<BR>');
            }
        } else {
            $this->index();
        }
    }

    /**
     * Permite generar un documento .pdf de las multas anuladas
     */
    function generar_anuladas() {
        if ($this->acceso->sesion() == 1) {
            $cabecera = array(
                'FECHA',
                'CÓDIGO',
                'CONTROLADOR',
                'USUARIO',
                'PLACA',
                'RAZÓN',
                'MONTO',
                'ANULADA',
                'PAGADA',
            );

            $query = $this->manular_multas->listar_multas_anuladas($_POST['fechai'], $_POST['fechaf']);
            $titulo = '<h1><B>LISTA DE MULTAS ANULADAS</B></h1><br>';
            $fecha = $_POST['fechai'] . " hasta " . $_POST['fechaf'];
            $contenido = array();
            for ($i = 0; $i < count($query); $i++) {
                $data = array(
                    $query[$i]['fecha'],
                    $query[$i]['codigo'],
                    $query[$i]['controlador'],
                    $query[$i]['usuario'],
                    $query[$i]['placa'],
                    $query[$i]['razon'],
                    $query[$i]['monto'],
                    $query[$i]['anulado'],
                    $query[$i]['pagado'],
                );
                array_push($contenido, $data);
                $this->reportes->pdf($cabecera, $contenido, $titulo, 'FECHA DE REPORTE: ' . $fecha . '<BR>');
            }
        } else {
            $this->index();
        }
    }

    /**
     * Permite generar un documento .pdf de las multas pagadas
     */
    function generar_pagadas() {
        if ($this->acceso->sesion() == 1) {
            $cabecera = array(
                'FECHA',
                'CÓDIGO',
                'CONTROLADOR',
                'USUARIO',
                'PLACA',
                'RAZÓN',
                'MONTO',
            );

            $query = $this->manular_multas->listar_multas_pagadas($_POST['fechai'], $_POST['fechaf']);
            $titulo = '<h1><B>LISTA DE MULTAS PAGADAS</B></h1><br>';
            $fecha = $_POST['fechai'] . " hasta " . $_POST['fechaf'];
            $contenido = array();
            for ($i = 0; $i < count($query); $i++) {
                $data = array(
                    $query[$i]['fecha'],
                    $query[$i]['codigo'],
                    $query[$i]['controlador'],
                    $query[$i]['usuario'],
                    $query[$i]['placa'],
                    $query[$i]['razon'],
                    $query[$i]['monto'],
                );
                array_push($contenido, $data);
                $this->reportes->pdf($cabecera, $contenido, $titulo, 'FECHA DE REPORTE: ' . $fecha . '<BR>');
            }
        } else {
            $this->index();
        }
    }

    /**
     * Permite generar un documento .pdf de las multas no pagadas
     */
    function generar_nopagadas() {
        if ($this->acceso->sesion() == 1) {
            $cabecera = array(
                'FECHA',
                'CÓDIGO',
                'CONTROLADOR',
                'USUARIO',
                'PLACA',
                'RAZÓN',
                'MONTO',
            );

            $query = $this->manular_multas->listar_multas_tipomultas($_POST['fechai'], $_POST['fechaf']);
            $titulo = '<h1><B>LISTA DE MULTAS NO PAGADAS</B></h1><br>';
            $fecha = $_POST['fechai'] . " hasta " . $_POST['fechaf'];
            $contenido = array();
            for ($i = 0; $i < count($query); $i++) {
                $data = array(
                    $query[$i]['fecha'],
                    $query[$i]['codigo'],
                    $query[$i]['controlador'],
                    $query[$i]['usuario'],
                    $query[$i]['placa'],
                    $query[$i]['razon'],
                    $query[$i]['monto'],
                );
                array_push($contenido, $data);
                $this->reportes->pdf($cabecera, $contenido, $titulo, 'FECHA DE REPORTE: ' . $fecha . '<BR>');
            }
        } else {
            $this->index();
        }
    }

}

?>
